package net.pugsplace.gpremacy.rules;

import java.io.Serializable;

import net.pugsplace.gpremacy.state.ResourceTuple;

/**
 * Immutable class representing one type of unit; these objects should only be
 * created by the RuleSet and then used elsewhere
 */
public interface UnitType extends Serializable {

	/** How many of each resource does it take to create a Unit of this UnitType? */
	public ResourceTuple[] getBuildCost();

	/** Returns the "type" of unit, such as "Soldier" */
	public String getType();

	/**
	 * How many of each resource does it take to maintain a Unit of this
	 * UnitType each turn?
	 */
	public ResourceTuple[] getUpkeepCost();
}
